package javaClassExercise.designPatterns.singleton;

/**
 * Created by lomo on 2017/3/26.
 */
public class SingletonTest {
    /* 私有静态变量instance, 防止被引用; instance变量在此处赋值为null, 实现延迟加载 -- 有的类比较大 延迟加载提升性能*/
    private static SingletonTest instance = null;

    /* 私有构造函数，防止被new实例化 */
    private SingletonTest() {}

    /* syncInit方法用来初始化单例类实例(限于单例内的内部) */
    // 同步性，synchronized关键字锁定的是对象
    private static synchronized void syncInit() {
        if (instance == null) {
            new SingletonTest();
        }
    }

    /* public级别的可供外部内访问的方法，用来获取单例类实例对象 */
    public static SingletonTest getInstance() {
        if (instance == null) {
            syncInit();
        }

        return instance;
    }

}
